/**
 * 栈
 */
function Stack() {
    var elems = []
    return {
        // 入栈
        push(e) {
            elems.addLast(e)
        },
        // 出栈
        pop(e) {
            return elems.removeLast()
        },
        // 获取栈顶元素
        top() {
            return elems[elems.length() - 1]
        },
        // 获取栈中的元素个数
        size() {
            return elems.length()
        },
        // 判断当前栈是否为空
        isEmpty() {
            return elems.isEmpty()
        }
    }
}
